<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
    // ES6提供了新的数据结构 Set 
    // 它类似于数组 但成员的值都是唯一的 没有重复的值
    // Set 本身是一个构造函数 用来生成Set数据结构
    const s = new Set();

    [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));

    for (let i of s) {
        console.log(i);
    }
    // 2 3 5 4 Set结构不会添加重复的值


    // Set函数可以接受一个数组 或者具有Iterator接口的其他数据结构 作为参数 用来初始化
    // 例一
    const set = new Set([1, 2, 3, 4, 4]);
    [...set]
    // [1, 2, 3, 4]

    // 例二
    const items = new Set([1, 2, 3, 4, 5, 5, 5, 5]);
    items.size // 5

    // 例三
    const set = new Set(document.querySelectorAll('div'));
    set.size // 56

    // 类似于
    const set = new Set();
    document.querySelectorAll('div').forEach(div => set.add(div));
    set.size // 56

    // 上面代码也展示了一种去除数组重复成员的方法
    // 去除数组的重复成员
    // [...new Set(array)]


    // 也可以用于去除字符串里的重复字符
    // [...new Set('ababbc')].join('')
    // "abc"


</script>